Skip to content

gomilter.GetPriv always returns -1 #11

@JoshWillik

Description

@JoshWillik

Test Code

package main

import (
  "fmt"
  milter "github.com/leonrbaker/gomilter"
  "syscall"
)

type TestMilter struct {
  milter.MilterRaw
}
type messageData struct {
  from string
}

func (m *TestMilter) EnvFrom(ctx uintptr, myargv []string) (sfsistat int8) {
  data := messageData{"fake@example.com"}
  fmt.Println("save", ctx, milter.SetPriv(ctx, &data))
  loaded := messageData{}
  fmt.Println("load", ctx, milter.GetPriv(ctx, &loaded))
  fmt.Println("loaded", loaded)
  return
}

func main() {
	m := new(TestMilter)
	m.FilterName = "TestMilter"
	m.Debug = true
	m.Flags = milter.ADDHDRS | milter.ADDRCPT
	m.Socket = "unix:/tmp/test-milter.sock"
        syscall.Umask(0600)
	milter.Run(m)
}

Output:

Debugging enabled
Filter Name: TestMilter
Flags: 0x101
Connect callback not implemented
Helo callback not implemented
EnvFrom callback implemented
EnvRcpt callback not implemented
Header callback not implemented
Eoh callback not implemented
Body callback not implemented
Eom callback not implemented
Abort callback not implemented
Close callback not implemented
smfilter:
{0x1b3d050 16777217 [0 0 0 0] 5 <nil> <nil> 0x4dd150 <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil>}
Handing over to libmilter
save 28564560 0
load 28564560 -1
loaded {}
EnvFrom callback returned: 0

System Info

OS: arch linux
libmilter version: 8.15.1-2
postfix: 3.1.3-2
go: go1.7.4 linux/amd64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions