FreeCalypso > hg > themwi-system-sw
view libutil/numstring.c @ 199:e6c7ced3c031
mgw: accept zero-length RTP payload as BFI
Mainline OsmoBTS now has an option (rtp continuous-streaming)
that causes it to emit an RTP packet every 20 ms without gaps,
sending a BFI marker in the form of zero-length RTP payload
when it has nothing else to send. These codec-independent
BFI markers don't indicate TAF, but this provision is a good
start. Accept this BFI packet format in themwi-mgw.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 29 Mar 2023 20:23:43 -0800 |
parents | d712d518059e |
children |
line wrap: on
line source
/* * Utility functions for number string initial parsing or preening. * grok_number_string() checks whether or not a user-supplied string * argument is fully numeric (with possibility of allowing hyphens), * and returns the number of digits. dehyphen_number_string() copies * a possibly-hyphenated number string to a new buffer with all hyphens * taken out. */ #include <ctype.h> grok_number_string(str, allow_hyphen) char *str; { char *cp; int c, n, last_hyphen; n = 0; last_hyphen = 0; for (cp = str; *cp; ) { c = *cp++; if (isdigit(c)) { n++; last_hyphen = 0; } else if (c == '-') { if (!allow_hyphen || !n || last_hyphen) return(-1); last_hyphen = 1; } else return(-1); } if (last_hyphen) return(-1); return n; } dehyphen_number_string(src, dest) char *src, *dest; { char *cp, *dp; int c; dp = dest; for (cp = src; *cp; ) { c = *cp++; if (isdigit(c)) *dp++ = c; } *dp = '\0'; }