Przeglądaj źródła

- fix ACK handling

git-svn-id: https://openser.svn.sourceforge.net/svnroot/openser/trunk@3513 689a6050-402a-0410-94f2-e92a70836424
Klaus Darilion 17 lat temu
rodzic
commit
2c832401d0
1 zmienionych plików z 14 dodań i 4 usunięć
  1. 14 4
      etc/openser.cfg

+ 14 - 4
etc/openser.cfg

@@ -213,11 +213,21 @@ route{
 		} else {
 		} else {
 			/* uncomment the following lines if you want to enable presence */
 			/* uncomment the following lines if you want to enable presence */
 			##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") {
 			##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") {
-			##      # in-dialog subscribe requests
-			##      route(2);
-			##} else {
-				sl_send_reply("404","Not here");
+			##	# in-dialog subscribe requests
+			##	route(2);
+			##	exit;
 			##}
 			##}
+			if ( is_method("ACK") ) {
+				if ( t_check_trans() ) {
+					# non loose-route, but stateful ACK; must be an ACK after a 487 or e.g. 404 from upstream server
+					t_relay();
+					exit;
+				} else {
+					# ACK without matching transaction ... ignore and discard.\n");
+					exit;
+				}
+			}
+			sl_send_reply("404","Not here");
 		}
 		}
 		exit;
 		exit;
 	}
 	}