summaryrefslogtreecommitdiff
path: root/gpsdclient.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2010-01-13 07:20:02 +0000
committerEric S. Raymond <esr@thyrsus.com>2010-01-13 07:20:02 +0000
commite2d11d64b584d5c7fa2a69d9cbdfa4f3cc9d0fe4 (patch)
tree063d795cbce2da3f165e995bf3ba20b589d8f806 /gpsdclient.c
parent19178965f484ddc11eabf098ba4d436a5d7c684d (diff)
downloadgpsd-e2d11d64b584d5c7fa2a69d9cbdfa4f3cc9d0fe4.tar.gz
IPv6 support is working.
Diffstat (limited to 'gpsdclient.c')
-rw-r--r--gpsdclient.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gpsdclient.c b/gpsdclient.c
index 77d276a6..a67db7b2 100644
--- a/gpsdclient.c
+++ b/gpsdclient.c
@@ -152,8 +152,9 @@ void gpsd_source_spec(const char *arg, struct fixsource_t *source)
if (colon1 != NULL) {
char *colon2;
*colon1 = '\0';
- if (colon1 != source->spec)
+ if (colon1 != source->spec) {
source->server = source->spec;
+ }
source->port = colon1 + 1;
colon2 = strchr(source->port, ':');
if (colon2 != NULL) {
@@ -166,6 +167,15 @@ void gpsd_source_spec(const char *arg, struct fixsource_t *source)
source->server = source->spec;
}
}
+
+ /*@-modobserver@*/
+ if (*source->server == '[') {
+ char *rbrk = strchr(source->server, ']');
+ ++source->server;
+ if (rbrk != NULL)
+ *rbrk = '\0';
+ }
+ /*@+modobserver@*/
/*@+usedef@*/
}
/*@ +observertrans -statictrans +mustfreeonly +branchstate +kepttrans @*/