/** Hash table for quick lookup of transactions. */ protected void addTransactionHash(SIPTransaction sipTransaction) { SIPRequest sipRequest = sipTransaction.getOriginalRequest(); // Via via = sipRequest.getTopmostVia(); // Cannot cache old style requests. /** * if (via.getBranch() == null || ! via.getBranch().toUpperCase().startsWith * (SIPConstants.BRANCH_MAGIC_COOKIE.toUpperCase())){ return; } */ if (sipTransaction instanceof SIPClientTransaction) { synchronized (clientTransactionTable) { String key = sipRequest.getTransactionId(); clientTransactionTable.put(key, sipTransaction); } } else { synchronized (serverTransactionTable) { String key = sipRequest.getTransactionId(); serverTransactionTable.put(key, sipTransaction); } } }
/** * Put a dialog into the dialog table. * * @param dialog -- dialog to put into the dialog table. */ public void putDialog(SIPDialog dialog) { String dialogId = dialog.getDialogId(); synchronized (dialogTable) { if (dialogTable.containsKey(dialogId)) return; } if (LogWriter.needsLogging) { logWriter.logMessage("putDialog dialogId=" + dialogId); } // if (this.getDefaultRouteHeader() != null) // dialog.addRoute(this.getDefaultRouteHeader(),false); dialog.setStack(this); if (LogWriter.needsLogging) logWriter.logStackTrace(); synchronized (dialogTable) { dialogTable.put(dialogId, dialog); } }
/** * Initialize -- load password files etc. Password file format is name:authentication * domain:password * * @param pwFileName is the password file name. * @param Exception is thrown when the password file is bad. */ public void initialize(String pwFileName) { try { XMLAuthenticationParser parser = new XMLAuthenticationParser(pwFileName); String def = parser.getRealm(); if (def != null) DEFAULT_REALM = def; ProxyDebug.println( "DEBUG, DigestAuthenticationMethod, initialize()," + " the realm is:" + DEFAULT_REALM); Vector usersTagList = parser.getUsersTagList(); if (usersTagList != null) for (int i = 0; i < usersTagList.size(); i++) { UserTag userTag = (UserTag) usersTagList.elementAt(i); String userName = userTag.getUserName(); // String userRealm=userTag.getUserRealm(); String userPassword = userTag.getUserPassword(); if (userName != null) { if (userPassword == null) { ProxyDebug.println( "DEBUG, DigestAuthenticationMethod, initialize()," + " the userPassword parameter does not exist for user: "******", we use the default: \"" + NULL_PASSWORD + "\""); userPassword = NULL_PASSWORD; } passwordTable.put(userName + "@" + DEFAULT_REALM, userPassword); } else { ProxyDebug.println( "DEBUG, DigestAuthenticationMethod, initialize()," + " the userName parameter does not exist, we skip this entry!!"); } } else ProxyDebug.println( "DEBUG, DigestAuthenticationMethod, initialize()," + "Error during parsing the passwords file!"); } catch (Exception e) { ProxyDebug.println("ERROR, DigestAuthenticationMethod, initialize()," + "exception raised:"); e.printStackTrace(); } }