[PATCH] to remove exit statements from libct

David Dick <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
can we remove the exit statements from inside shared libraries?  The 
attached patch removes the exit statements for the libct library in a 
hopefully acceptable fashion.

_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
freetds_exit.patch (text/plain, 1.8 KB)
diff -Naur old/src/tds/login.c new/src/tds/login.c
--- old/src/tds/login.c	2007-12-31 21:06:50.000000000 +1100
+++ new/src/tds/login.c	2010-02-27 15:48:38.000000000 +1100
@@ -549,7 +549,7 @@
 		memcpy(program_version, "\005\000\000\000", 4);
 	} else {
 		tdsdump_log(TDS_DBG_SEVERE, "Unknown protocol version!\n");
-		exit(1);
+		return TDS_FAIL;
 	}
 	/*
 	 * the following code is adapted from  Arno Pedusaar's 
diff -Naur old/src/tds/net.c new/src/tds/net.c
--- old/src/tds/net.c	2008-01-12 11:21:39.000000000 +1100
+++ new/src/tds/net.c	2010-02-27 15:48:38.000000000 +1100
@@ -444,12 +444,11 @@
 				continue;
 			case TDS_INT_CANCEL:		/* abort the current command batch */
 							/* FIXME tell tds_goodread() not to call tdserror() */
-				return 0;
+				return TDS_FAIL;
 			default:
 				tdsdump_log(TDS_DBG_NETWORK, 
 					"tds_select: invalid interupt handler return code: %d\n", timeout_action);
-				exit(EXIT_FAILURE);
-				break;
+				return TDS_FAIL;
 			}
 		}
 		/* 
diff -Naur old/src/tds/token.c new/src/tds/token.c
--- old/src/tds/token.c	2008-01-27 21:41:23.000000000 +1100
+++ new/src/tds/token.c	2010-02-27 15:48:38.000000000 +1100
@@ -3080,8 +3080,7 @@
 	default:
 		tdsdump_log(TDS_DBG_INFO1, "oops: cannot process option of size %d\n", argsize);
 		assert(argsize <= 4);
-		exit(1);	 /* FIXME: stream would become desynchronized */
-		break;
+		return TDS_FAIL;
 	}
 	tdsdump_log(TDS_DBG_INFO1, "received option %d value %d\n", option, arg);
 
diff -Naur old/src/tds/util.c new/src/tds/util.c
--- old/src/tds/util.c	2007-12-07 16:27:55.000000000 +1100
+++ new/src/tds/util.c	2010-02-27 15:48:38.000000000 +1100
@@ -375,7 +375,7 @@
 		case TDS_INT_TIMEOUT:
 		case TDS_INT_CONTINUE:
 		 	tdsdump_log(TDS_DBG_FUNC, "exit: %s(%d) valid only for TDSETIME\n", retname(rc), rc);
-			exit(1);
+			return TDS_FAIL;
 		default:
 			break;
 		}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.