Browse Source

fix auth token assign

Maxim Sokhatsky 11 years ago
parent
commit
61b572d8a0

+ 8 - 10
apps/face/src/index.erl

@@ -22,17 +22,13 @@ take(GameId,Place) ->
         bert:tuple(bert:atom("game_action"),GameId, bert:atom("okey_take"),[{pile,Place}])))).
 
 discard(GameId, Color, Value) ->
-    ws:send(
-      bert:encodebuf(
+    ws:send(bert:encodebuf(bert:tuple(
+        bert:atom('client'),
         bert:tuple(
-          bert:atom('client'),
-          bert:tuple(
-            bert:atom("game_action"), GameId,
-            bert:atom("okey_discard"), [{tile, bert:tuple(bert:atom("OkeyPiece"), Color, Value)}]
-           )
-         )
-       )
-     ).
+            bert:atom("game_action"),
+            GameId,
+            bert:atom("okey_discard"),
+            [{tile, bert:tuple(bert:atom("OkeyPiece"), Color, Value)}])))).
 
 redraw_tiles([{Tile, _}| _ ] = TilesList) ->
     wf:update(dddiscard, [#dropdown{id = dddiscard, postback = combo, value = Tile, source = [dddiscard], options = [#option{label = CVBin, value = CVBin} || {CVBin, _} <- TilesList]}]).
@@ -66,8 +62,10 @@ body() ->
       #button{ id = discard, body = <<"Discard">>, postback = discard, source=[dddiscard]}
     ].
 
+event(terminate) -> wf:info("terminate");
 event(init) ->
     {ok,GamePid} = game_session:start_link(self()),
+    wf:info("INIT ~p",[GamePid]),
     put(game_session, GamePid);
 
 event(combo)  -> wf:info("Combo: ~p",[wf:q(dddiscard)]);

+ 4 - 0
apps/face/src/n2o_game.erl

@@ -52,9 +52,11 @@ html_events(Pro, State) ->
 stream(<<"ping">>, Req, State) ->
     {reply, <<"pong">>, Req, State};
 stream({text,Data}, Req, State) ->
+%    wf:info("Text: ~p",[Data]),
     info(Data,Req,State);
 stream({binary,Info}, Req, State) ->
     Pro = binary_to_term(Info,[safe]),
+    wf:info("Binary: ~p",[Pro]),
     case Pro of
         {client,M} -> info({client,M},Req,State);
         _ -> {reply,html_events(Pro,State),Req,State} end;
@@ -63,6 +65,7 @@ stream(<<"N2O",Rest/binary>> = Data, Req, State) ->
     info(Data,Req,State);
 
 stream(Data, Req, State) ->
+    wf:info("Binary: ~p",[Data]),
     info(binary_to_term(Data),Req,State).
 
 render_actions(InitActions) ->
@@ -74,6 +77,7 @@ render_actions(InitActions) ->
 
 info({client,Message}, Req, State) ->
     GamePid = get(game_session),
+    wf:info("GameSessionPid: ~p",[GamePid]),
     game_session:process_request(GamePid, Message), 
     Module = State#context.module,
     try Module:event({client,Message}) catch E:R -> wf:info("Catch: ~p:~p", [E,R]) end,

+ 1 - 1
apps/server/include/settings.hrl

@@ -4,6 +4,6 @@
 -define(SKILL_SEED, begin {ok, X}      = kvs:get(config, "games/okey/skill_seed", 500), X end). %% skill value for new player
 -define(IS_TEST, begin {ok, X}         = kvs:get(config,"debug/is_test", false), X end). %% determines if code is executed in test
 -define(ALL_SESSIONS, <<"all_sessions_topic">>).
--define(TEST_TOKEN, "EBAs6dg2Xw6XuCdg8qiPmlBLgYJ6N4Ti0P+oGpWgYz4NW4nBBUzTe/wAuLYtPnjFpsjCExxSpV78fipmsPxcf+NGy+QKIM6rmVJhpnIlKf0bpFNuGaAPjZAWthhGO8nZ0V8UnA==").
+-define(TEST_TOKEN,  "EBAs6dg2Xw6XuCdg8qiPmlBLgYJ6N4Ti0P+oGpWgYz4NW4nBBUzTe/wAuLYtPnjFpsjCExxSpV78fipmsPxcf+NGy+QKIM6rmVJhpnIlKf0bpFNuGaAPjZAWthhGO8nZ0V8UnA==").
 -define(TEST_TOKEN2, "EBAs6dg2Xw6XuCdg8qiPmlBLgYJ6N4Ti0P+oGpWgYz4NW4nBBUzTe/wAuLYtPnjFpsjCExxSpV78fipmsPxcf+NGy+QKIM6rmVJhpnIlKf0bpFNuGaAPjZAWthhGO8nZ0V8Un2==").
 -define(PAIRED_TAVLA_ASYNC, false).

+ 25 - 26
apps/server/src/auth_server.erl

@@ -8,6 +8,7 @@
 
 -behaviour(gen_server).
 
+-compile(export_all).
 -export([store_token/3,start_link/0,
          robot_credentials/0,
          fake_credentials/0,
@@ -63,37 +64,33 @@ handle_call({store_token, GameId, Token, UserId}, _From, #state{tokens = E} = St
     {reply, Token, State};
 
 handle_call({get_user_info, Token}, _From, #state{tokens = E} = State) ->
-    ?INFO("checking token: ~p", [Token]),
+    gs:info("checking token: ~p", [Token]),
     case ets:lookup(E, Token) of
         [] ->
-            ?INFO("token not found", []),
+            gs:info("token not found", []),
             {reply, false, State};
         List ->
             {authtoken, _, UserId} = hd(List),
-            ?INFO("token was registred, getting user info for ~p",[UserId]),
-	            proc_lib:spawn_link(fun() ->
-                                        Reply =
-                                            case user_info(UserId) of
-                                                {ok, UserInfo} ->
-                                                    ?INFO("..user info retrieved", []),
-                                                    UserInfo;
-                                                {error, user_not_found} ->
-                                                    ?INFO("..no such user info, providing fake credentials", []),
-                                                    fake_credentials0(State#state.spare); %% for eunit tests. FIX
-                                                {badrpc, _} ->
-                                                    ?INFO("..bad rpc, providing fake credentials", []),
-                                                    fake_credentials0(State#state.spare)  %% for eunit tests. FIX
-                                            end,
-                                        gen_server:reply(_From, Reply)
-                                end),
-            {noreply, State}
+            gs:info("token was registred, getting user info for ~p",[UserId]),
+            Reply = case user_info(UserId) of
+                {ok, UserInfo} ->
+                    gs:info("..user info retrieved", []),
+                    UserInfo;
+                {error, user_not_found} ->
+                    gs:info("..no such user info, providing fake credentials", []),
+                    fake_credentials0(State#state.spare); %% for eunit tests. FIX
+                {badrpc, _} ->
+                    gs:info("..bad rpc, providing fake credentials", []),
+                    fake_credentials0(State#state.spare)  %% for eunit tests. FIX
+            end,
+            {reply, Reply, State}
     end;
 
 handle_call({get_user_info, Token, Id}, _From, #state{tokens = E} = State) ->
-    ?INFO("checking token: ~p", [Token]),
+    gs:info("checking token: ~p", [Token]),
     case ets:lookup(E, Token) of
         [] ->
-            ?INFO("token not found", []),
+            gs:error("token not found", []),
             {reply, false, State};
         _List ->
             Reply0 = fake_credentials0(State#state.spare),
@@ -113,24 +110,26 @@ code_change(_OldVsn, State, _Extra) -> {ok, State}.
 fake_credentials0(Spare) ->
     Pos = crypto:rand_uniform(1, length(Spare)),
     H0 = lists:nth(Pos, Spare),
-    Id = list_to_binary(binary_to_list(H0#'PlayerInfo'.login) ++ integer_to_list(id_generator:get_id2())),
+    Id = list_to_binary(binary_to_list(H0#'PlayerInfo'.login) ++
+         integer_to_list(id_generator:get_id2())),
     H0#'PlayerInfo'{id = Id}.
 
 store_token(GameId, E, Token, UserId) ->
-    ?INFO("storing token: ~p", [Token]),
+    gs:info("storing token: ~p", [Token]),
     Data = #authtoken{token = Token, id = UserId},
     ets:insert(E, Data).
 
 user_info(UserId) ->
     case nsm_auth:get_user_info(UserId) of
         {ok, UserData} ->
+            gs:info("User Data: ~p",[UserData]),
             {ok, #'PlayerInfo'{id = list_to_binary(UserData#user_info.username),
                                login = list_to_binary(UserData#user_info.username),
-                               name = utils:convert_if(UserData#user_info.name, binary),
-                               avatar_url = utils:convert_if(UserData#user_info.avatar_url, binary),
+                               name = wf:to_binary(UserData#user_info.name),
+                               avatar_url = wf:to_binary(UserData#user_info.avatar_url),
                                skill = UserData#user_info.skill,
                                score = UserData#user_info.score,
-                               surname = utils:convert_if(UserData#user_info.surname, binary)}};
+                               surname = wf:to_binary(UserData#user_info.surname)}};
         Error ->
             Error
     end.

+ 17 - 17
apps/server/src/game_session.erl

@@ -47,11 +47,11 @@ bot_session_attach(Pid, UserInfo) ->
 % TODO: in case of game requests from web page handle them here
 
 process_request(Pid, Msg) ->
-    ?INFO("API payload ~p pid ~p",[Msg,Pid]),
+    gs:info("API payload ~p pid ~p",[Msg,Pid]),
     gen_server:call(Pid, {client_request, Msg}).
 
 process_request(Pid, Source, Msg) ->
-    ?INFO("API from ~p payload ~p pid ~p",[Source,Msg,Pid]),
+    gs:info("API from ~p payload ~p pid ~p",[Source,Msg,Pid]),
     gen_server:call(Pid, {client_request, Msg}).
 
 init([RPC]) ->
@@ -62,7 +62,7 @@ handle_call({client_request, Request}, From, State) ->
     handle_client_request(Request, From, State);
 
 handle_call(Request, From, State) ->
-    ?INFO("unrecognized call: ~p", [Request]),
+    gs:info("unrecognized call: ~p", [Request]),
     {stop, {unknown_call, From, Request}, State}.
 
 
@@ -71,7 +71,7 @@ handle_cast({bot_session_attach, UserInfo}, State = #state{user = undefined}) ->
     {noreply, State#state{user = UserInfo}};
 
 handle_cast(Msg, State) ->
-    ?INFO("session: unrecognized cast: ~p", [Msg]),
+    gs:info("session: unrecognized cast: ~p", [Msg]),
     {stop, {error, {unknown_cast, Msg}}, State}.
 
 
@@ -79,7 +79,7 @@ handle_info({relay_event, SubscrId, RelayMsg}, State) ->
     handle_relay_message(RelayMsg, SubscrId, State);
 
 handle_info({relay_kick, SubscrId, Reason}, State) ->
-    ?INFO("Recived a kick notification from the table: ~p", [Reason]),
+    gs:info("Recived a kick notification from the table: ~p", [Reason]),
     handle_relay_kick(Reason, SubscrId, State);
 
 handle_info({delivery, ["user_action", Action, Who, Whom], _} = Notification,
@@ -87,7 +87,7 @@ handle_info({delivery, ["user_action", Action, Who, Whom], _} = Notification,
                    user = User,
                    rpc = RPC
                   } = State) ->
-    ?INFO("~w:handle_info/2 Delivery: ~p", [?MODULE, Notification]),
+    gs:info("~w:handle_info/2 Delivery: ~p", [?MODULE, Notification]),
     UserId = User#'PlayerInfo'.id,
     case list_to_binary(Who) of
         UserId ->
@@ -119,7 +119,7 @@ handle_info({delivery, ["user_action", Action, Who, Whom], _} = Notification,
 
 
 handle_info({'DOWN', MonitorRef, _Type, _Object, _Info} = Msg, State = #state{rpc_mon = MonitorRef}) ->
-    ?INFO("connection closed, shutting down session:~p", [Msg]),
+    gs:info("connection closed, shutting down session:~p", [Msg]),
     {stop, normal, State};
 
 handle_info({'DOWN', OtherRef, process, _Object, Info} = _Msg,
@@ -136,11 +136,11 @@ handle_info({'DOWN', OtherRef, process, _Object, Info} = _Msg,
     end;
 
 handle_info(Info, State) ->
-    ?INFO("session: unrecognized info: ~p", [Info]),
+    gs:info("session: unrecognized info: ~p", [Info]),
     {noreply, State}.
 
 terminate(Reason, #state{rels_notif_channel = RelsChannel}) ->
-    ?INFO("terminating session. reason: ~p", [Reason]),
+    wf:info("terminating session. reason: ~p", [Reason]),
     if RelsChannel =/= undefined -> nsm_mq_channel:close(RelsChannel);
        true -> do_nothing end,
     ok.
@@ -152,31 +152,31 @@ code_change(_OldVsn, State, _Extra) ->
 
 handle_client_request(#session_attach{token = Token}, _From,
                       #state{user = undefined} = State) ->
-    ?INFO("checking session token: ~p", [Token]),
+    gs:info("checking session token: ~p", [Token]),
     case auth_server:get_user_info(Token) of
         false ->
-            ?INFO("failed session attach: ~p", [Token]),
+            gs:error("failed session attach: ~p", [Token]),
             {stop, normal, {error, invalid_token}, State};
         UserInfo ->
-            ?INFO("successfull session attach. Your user info: ~p", [UserInfo]),
+            gs:info("successfull session attach. Your user info: ~p", [UserInfo]),
             {reply, UserInfo, State#state{user = UserInfo}}
     end;
 
 handle_client_request(#session_attach_debug{token = Token, id = Id}, _From,
                       #state{user = undefined} = State) ->
-    ?INFO("checking debug session token: ~p", [{Token,Id}]),
+    gs:info("checking debug session token: ~p", [{Token,Id}]),
     case {?IS_TEST, auth_server:get_user_info(Token, Id)} of
         {_Test, false} ->
-            ?INFO("... ~p", [{_Test,false}]),
+            gs:error("... ~p", [{_Test,false}]),
             {stop, normal, {error, invalid_token}, State};
         {false, true} ->
-            ?INFO("... ~p", [{false,true}]),
+            gs:error("... ~p", [{false,true}]),
             {stop, normal, {error, invalid_token}, State};
         {true, UserInfo} ->
-            ?INFO("... ~p", [{true,UserInfo}]),
+            gs:info("... ~p", [{true,UserInfo}]),
             {reply, UserInfo, State#state{user = UserInfo}};
         {false, UserInfo} ->
-            ?INFO("... ~p", [{true,UserInfo}]),
+            gs:info("... ~p", [{true,UserInfo}]),
             {reply, UserInfo, State#state{user = UserInfo}}
     end;
 

+ 9 - 0
apps/server/src/gs.erl

@@ -0,0 +1,9 @@
+-module(gs).
+-compile(export_all).
+
+info(String, Args) ->  error_logger:info_msg(String, Args).
+info(String) -> error_logger:info_msg(String).
+warning(String, Args) -> error_logger:warning_msg(String, Args).
+warning(String) -> error_logger:warning_msg(String).
+error(String, Args) -> error_logger:error_msg(String, Args).
+error(String) -> error_logger:error_msg(String).

+ 2 - 2
apps/server/src/nsm_auth.erl

@@ -54,7 +54,7 @@ get_all_user() -> {ok, kvs:all(user)}.
 generate_token(User) ->
     Token = generate_token0(),
     Res = auth_server:store_token(0, Token, User),
-    ?INFO("with result :~p~n", [Res]),
+    gs:info("with result :~p~n", [Res]),
     Token.
 
 generate_token0() -> T0 = crypto:rand_bytes(100), T = base64:encode(T0), T.
@@ -64,7 +64,7 @@ build_user_info(#user{username = UserName,
                       surnames = Surname,
                       birth = Age,
                       sex = Sex} = User) ->
-    #user_info{username = UserName,
+    #user_info{username = Name,
                name = Name,
                surname = Surname,
                age = Age,

+ 1 - 0
otp.mk

@@ -25,6 +25,7 @@ console: .applist
 	ERL_LIBS=$(ERL_LIBS) erl $(ERL_ARGS) -eval \
 		'[ok = application:ensure_started(A, permanent) || A <- $(shell cat .applist)]'
 start: $(RUN_DIR) $(LOG_DIR) .applist
+	RUN_ERL_LOG_GENERATIONS=1000 RUN_ERL_LOG_MAXSIZE=20000000 \
 	ERL_LIBS=$(ERL_LIBS) run_erl -daemon $(RUN_DIR)/ $(LOG_DIR)/ "exec $(MAKE) console"
 attach:
 	to_erl $(RUN_DIR)/