summaryrefslogtreecommitdiff
path: root/memc-nginx-module-0.20/src/memc_common.rl
blob: eeb61c1959361b85646871ddbbd6e1d11e285138 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
%%{
    machine memc_common;

    action catch_err {
        dd("caught error...");
        dd("machine state: %d", cs);

        *status_addr = NGX_HTTP_BAD_GATEWAY;
    }

    msg = any* -- "\r\n";

    error_helper = "ERROR\r\n"
                 | "CLIENT_ERROR " msg "\r\n"
                 | "SERVER_ERROR " msg "\r\n"
                 ;

    error = error_helper @catch_err
          ;

    action finalize {
        dd("done it!");
        *done_addr = 1;
    }

    action check {
        dd("state %d, left %d, reading char '%c'", cs,
        (int) (pe - p), *p);
    }

    action handle_stored {
        dd("status set to 201");

        *status_addr = NGX_HTTP_CREATED;
    }

    action handle_not_found {
        dd("status set to 404");

        *status_addr = NGX_HTTP_NOT_FOUND;
    }

}%%