diff options
Diffstat (limited to 'recipes/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668')
-rw-r--r-- | recipes/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/recipes/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 b/recipes/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 new file mode 100644 index 0000000000..fa07ee1b8e --- /dev/null +++ b/recipes/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 @@ -0,0 +1,27 @@ +--- mgetty-1.1.30.orig/ring.c Thu Dec 5 21:29:10 2002 ++++ mgetty-1.1.30/ring.c Mon Sep 29 20:30:23 2003 +@@ -219,6 +219,8 @@ + char buf[BUFSIZE], ch, *p; + int i, w, r; + int rc = SUCCESS; ++boolean got_name = FALSE; ++boolean got_nmbr = FALSE; + boolean got_dle; /* for <DLE><char> events (voice mode) */ + + lprintf( L_MESG, "wfr: waiting for ``RING''" ); +@@ -321,7 +324,14 @@ + * instead of waiting for the next "real" RING + * (but don't do this for V253 DRON/DROF modems!) + */ +- if ( strncmp( buf, "NMBR", 4 ) == 0 && drox_count == 0 ) { break; } ++ if ( strncmp( buf, "NMBR", 4 ) == 0 && drox_count == 0 ) { got_nmbr = TRUE; } ++ if ( strncmp( buf, "NAME", 4 ) == 0 ) { got_name = TRUE; } ++ ++ if ( got_nmbr && got_name ) break; /* got both name & number */ ++ ++ /* special case -> break; do not expect caller name */ ++ if ( got_nmbr && CallerId[0] == 'P' ) break; /* private */ ++ if ( got_nmbr && CallerId[0] == 'O' ) break; /* out of area */ + + /* V.253 ring cadences */ + if ( strncmp( buf, "DRON", 4 ) == 0 || |