Changeset 362 in ntrip
- Timestamp:
- Jan 9, 2007, 9:16:33 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ntripclient/NtripLinuxClient.c
r339 r362 1 1 /* 2 2 Easy example NTRIP client for Linux/Unix. 3 $Id: NtripLinuxClient.c,v 1.2 2 2006/11/23 14:39:50stoecker Exp $3 $Id: NtripLinuxClient.c,v 1.23 2006/11/29 10:43:15 stoecker Exp $ 4 4 Copyright (C) 2003-2005 by Dirk Stoecker <soft@dstoecker.de> 5 5 … … 41 41 42 42 /* CVS revision and version */ 43 static char revisionstr[] = "$Revision: 1.2 2$";44 static char datestr[] = "$Date: 2006/11/2 3 14:39:50$";43 static char revisionstr[] = "$Revision: 1.23 $"; 44 static char datestr[] = "$Date: 2006/11/29 10:43:15 $"; 45 45 46 46 struct Args … … 50 50 const char *user; 51 51 const char *password; 52 const char *nmea; 52 53 const char *data; 53 54 int bitrate; … … 66 67 { "port", required_argument, 0, 'r'}, 67 68 { "user", required_argument, 0, 'u'}, 69 { "nmea", required_argument, 0, 'n'}, 68 70 { "help", no_argument, 0, 'h'}, 69 71 {0,0,0,0}}; 70 72 #endif 71 #define ARGOPT "-d:bhp:r:s:u: "73 #define ARGOPT "-d:bhp:r:s:u:n:" 72 74 73 75 #ifdef __GNUC__ … … 96 98 /* scan for mountpoint */ 97 99 args->data = Buffer; 98 while(*url && *url != '@' && *url != '/' && Buffer != Bufend)100 while(*url && *url != '@' && *url != ';' &&*url != '/' && Buffer != Bufend) 99 101 *(Buffer++) = *(url++); 100 102 if(Buffer == args->data) … … 109 111 ++url; 110 112 args->user = Buffer; 111 while(*url && *url != '@' && *url != ' :' && Buffer != Bufend)113 while(*url && *url != '@' && *url != ';' && *url != ':' && Buffer != Bufend) 112 114 *(Buffer++) = *(url++); 113 115 if(Buffer == args->user) … … 120 122 121 123 args->password = Buffer; 122 while(*url && *url != '@' && Buffer != Bufend)124 while(*url && *url != '@' && *url != ';' && Buffer != Bufend) 123 125 *(Buffer++) = *(url++); 124 126 if(Buffer == args->password) … … 133 135 ++url; 134 136 args->server = Buffer; 135 while(*url && *url != ':' && Buffer != Bufend)137 while(*url && *url != ':' && *url != ';' && Buffer != Bufend) 136 138 *(Buffer++) = *(url++); 137 139 if(Buffer == args->server) … … 145 147 char *s2 = 0; 146 148 args->port = strtol(++url, &s2, 10); 147 if( *s2|| args->port <= 0 || args->port > 0xFFFF)149 if((*s2 && *s2 != ';') || args->port <= 0 || args->port > 0xFFFF) 148 150 return "Illegal port number."; 149 151 url = s2; 150 152 } 153 } 154 if(*url == ';') /* NMEA */ 155 { 156 args->nmea = ++url; 157 while(*url) 158 ++url; 151 159 } 152 160 … … 166 174 args->user = ""; 167 175 args->password = ""; 176 args->nmea = 0; 168 177 args->data = 0; 169 178 args->bitrate = 0; … … 182 191 case 'p': args->password = optarg; break; 183 192 case 'd': args->data = optarg; break; 193 case 'n': args->nmea = optarg; break; 184 194 case 'b': args->bitrate = 1; break; 185 195 case 'h': help=1; break; … … 358 368 buf[i++] = '\r'; 359 369 buf[i++] = '\n'; 370 if(args.nmea) 371 { 372 int j = snprintf(buf+i, MAXDATASIZE-i, "%s\r\n", args.nmea); 373 if(j >= 0 && i < MAXDATASIZE-i) 374 i += j; 375 else 376 { 377 fprintf(stderr, "NMEA string too long\n"); 378 exit(1); 379 } 380 } 360 381 } 361 382 if(send(sockfd, buf, (size_t)i, 0) != i)
Note:
See TracChangeset
for help on using the changeset viewer.