HCoop
/
hcoop
/
domtool2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More helpful error message for failure to create an SSL context
[hcoop/domtool2.git]
/
src
/
main.sml
diff --git
a/src/main.sml
b/src/main.sml
index
bea07af
..
e106823
100644
(file)
--- a/
src/main.sml
+++ b/
src/main.sml
@@
-170,6
+170,12
@@
val dispatcher =
val self =
"localhost:" ^ Int.toString Config.slavePort
val self =
"localhost:" ^ Int.toString Config.slavePort
+fun context x =
+ (OpenSSL.context false x)
+ handle e as OpenSSL.OpenSSL _ =>
+ (print "Couldn't find your certificate.\nYou probably haven't been given any Domtool privileges.\n";
+ raise e)
+
fun requestContext f =
let
val user =
fun requestContext f =
let
val user =
@@
-187,9
+193,9
@@
fun requestContext f =
val () = f ()
val () = f ()
- val context =
OpenSSL.
context (Config.certDir ^ "/" ^ user ^ ".pem",
-
Config.keyDir ^ "/" ^ user ^ "/key.pem",
-
Config.trustStore)
+ val context = context (Config.certDir ^ "/" ^ user ^ ".pem",
+ Config.keyDir ^ "/" ^ user ^ "/key.pem",
+ Config.trustStore)
in
(user, context)
end
in
(user, context)
end
@@
-787,7
+793,13
@@
fun requestFirewall {node, uname} =
fun regenerate context =
let
fun regenerate context =
let
+ val _ = ErrorMsg.reset ()
+
val b = basis ()
val b = basis ()
+ val _ = if Env.lookupType b "string" then
+ print "Still got it\n"
+ else
+ print "Don't got it\n"
val () = Tycheck.disallowExterns ()
val () = Domain.resetGlobal ()
val () = Tycheck.disallowExterns ()
val () = Domain.resetGlobal ()
@@
-891,9
+903,9
@@
fun service () =
let
val () = Acl.read Config.aclFile
let
val () = Acl.read Config.aclFile
- val context =
OpenSSL.
context (Config.serverCert,
-
Config.serverKey,
-
Config.trustStore)
+ val context = context (Config.serverCert,
+ Config.serverKey,
+ Config.trustStore)
val _ = Domain.set_context context
val sock = OpenSSL.listen (context, Config.dispatcherPort)
val _ = Domain.set_context context
val sock = OpenSSL.listen (context, Config.dispatcherPort)
@@
-1253,6
+1265,12
@@
fun service () =
OpenSSL.close bio
handle OpenSSL.OpenSSL _ => ();
loop ())
OpenSSL.close bio
handle OpenSSL.OpenSSL _ => ();
loop ())
+ | IO.Io {name, function, cause} =>
+ (print ("IO error: " ^ function ^ " for " ^ name ^ "\n");
+ app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory cause);
+ OpenSSL.close bio
+ handle OpenSSL.OpenSSL _ => ();
+ loop ())
| e =>
(print "Unknown exception in main loop!\n";
app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory e);
| e =>
(print "Unknown exception in main loop!\n";
app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory e);
@@
-1270,9
+1288,9
@@
fun slave () =
let
val host = Slave.hostname ()
let
val host = Slave.hostname ()
- val context =
OpenSSL.
context (Config.certDir ^ "/" ^ host ^ ".pem",
-
Config.keyDir ^ "/" ^ host ^ "/key.pem",
-
Config.trustStore)
+ val context = context (Config.certDir ^ "/" ^ host ^ ".pem",
+ Config.keyDir ^ "/" ^ host ^ "/key.pem",
+ Config.trustStore)
val sock = OpenSSL.listen (context, Config.slavePort)
val sock = OpenSSL.listen (context, Config.slavePort)