Back to index

lightning-sunbird  0.9+nobinonly
jarnav.c
Go to the documentation of this file.
00001 /* ***** BEGIN LICENSE BLOCK *****
00002  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00003  *
00004  * The contents of this file are subject to the Mozilla Public License Version
00005  * 1.1 (the "License"); you may not use this file except in compliance with
00006  * the License. You may obtain a copy of the License at
00007  * http://www.mozilla.org/MPL/
00008  *
00009  * Software distributed under the License is distributed on an "AS IS" basis,
00010  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00011  * for the specific language governing rights and limitations under the
00012  * License.
00013  *
00014  * The Original Code is the Netscape security libraries.
00015  *
00016  * The Initial Developer of the Original Code is
00017  * Netscape Communications Corporation.
00018  * Portions created by the Initial Developer are Copyright (C) 1994-2000
00019  * the Initial Developer. All Rights Reserved.
00020  *
00021  * Contributor(s):
00022  *
00023  * Alternatively, the contents of this file may be used under the terms of
00024  * either the GNU General Public License Version 2 or later (the "GPL"), or
00025  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00026  * in which case the provisions of the GPL or the LGPL are applicable instead
00027  * of those above. If you wish to allow use of your version of this file only
00028  * under the terms of either the GPL or the LGPL, and not to allow others to
00029  * use your version of this file under the terms of the MPL, indicate your
00030  * decision by deleting the provisions above and replace them with the notice
00031  * and other provisions required by the GPL or the LGPL. If you do not delete
00032  * the provisions above, a recipient may use your version of this file under
00033  * the terms of any one of the MPL, the GPL or the LGPL.
00034  *
00035  * ***** END LICENSE BLOCK ***** */
00036 
00037 /*
00038  *  JARNAV.C
00039  *
00040  *  JAR stuff needed for client only.
00041  *
00042  */
00043 
00044 #include "jar.h"
00045 #include "jarint.h"
00046 
00047 /* from proto.h */
00048 #ifdef MOZILLA_CLIENT_OLD
00049 extern MWContext *XP_FindSomeContext(void);
00050 #endif
00051 
00052 /* sigh */
00053 extern MWContext *FE_GetInitContext(void);
00054 
00055 /* To return an MWContext for Java */
00056 static MWContext *(*jar_fn_FindSomeContext) (void) = NULL;
00057 
00058 /* To fabricate an MWContext for FE_GetPassword */
00059 static MWContext *(*jar_fn_GetInitContext) (void) = NULL;
00060 
00061 /*
00062  *  J A R _ i n i t
00063  *
00064  *  Initialize the JAR functions.
00065  * 
00066  */
00067 
00068 void JAR_init (void)
00069   {
00070 #ifdef MOZILLA_CLIENT_OLD
00071   JAR_init_callbacks (XP_GetString, XP_FindSomeContext, FE_GetInitContext);
00072 #else
00073   JAR_init_callbacks (XP_GetString, NULL, NULL);
00074 #endif
00075   }
00076 
00077 /*
00078  *  J A R _ s e t _ c o n t e x t
00079  *
00080  *  Set the jar window context for use by PKCS11, since
00081  *  it may be needed to prompt the user for a password.
00082  *
00083  */
00084 
00085 int JAR_set_context (JAR *jar, MWContext *mw)
00086   {
00087   if (mw)
00088     {
00089     jar->mw = mw;
00090     }
00091   else
00092     {
00093     /* jar->mw = XP_FindSomeContext(); */
00094     jar->mw = NULL;
00095 
00096     /*
00097      * We can't find a context because we're in startup state and none
00098      * exist yet. go get an FE_InitContext that only works at initialization
00099      * time.
00100      */
00101 
00102     /* Turn on the mac when we get the FE_ function */
00103     if (jar->mw == NULL)
00104       {
00105       jar->mw = jar_fn_GetInitContext();
00106       }
00107    }
00108 
00109   return 0;
00110   }